#ifndef _GET_HW_RESTFUL_API_CAMEAR_CONFIG_H_
#define _GET_HW_RESTFUL_API_CAMEAR_CONFIG_H_

#include <iostream>
#include <string>
#include "types.h"

extern GC_APP_CONFIG gc_app_config; // 全局配置参数结构体

namespace gc
{
    typedef struct hw_rest_api // 相机查询参数存储结构体
    {
        std::string uuid = "";
        std::string dev_type = "";
        bool enable_corridorMode = false;
    } hw_rest_api_s;


    class CameraConfig // 相机基本参数查询类
    {
        public:
            CameraConfig(std::string &ip_s);
            ~CameraConfig();

            int get_camera_config_byRestApi(); // 主要接口 将查询到的相机参数直接赋值struct GC_APP_CONFIG
        
        protected:
            int Connect(); // 连接服务端
            int getUUID(std::string &uuid_s); // 查询UUID
            int getDevType(std::string &devType_s); // 查询设备类型
            int getIsOpenCorridorMode(bool &res); // 查询走廊模式开启状态

        private:
            int sockfd;
            std::string cam_ip = "";
            std::string username = "ApiAdmin"; // 相机北向开发用户名
            std::string password = "HuaWei123"; // 相机北向开发密码

            int SendRequest(std::string &url_path, std::string &rsp_content); // 发送、接受restful api报文及返回值
    };
}

#endif